package cn.kz.krm.exceptionhandler;

import cn.kz.hrm.util.AjaxResult;
import cn.kz.krm.myexceptions.MyGlobalExceptions;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice //该标签的作用是在所有的其他的controller之前执行，执行级别更高，可以理解为拦截器，但不同。
@ResponseBody //响应给前台是的是json格式，不打上该标签则会返回给前台一个视图，会报错，应为这是前后端分离的项目
public class MyGlobalExceptionsHandler {

    @ExceptionHandler(MyGlobalExceptions.class)
    public AjaxResult handlerMyCeptions(MyGlobalExceptions e){
        //e.getMessage()是会捕获到抛出的自定义的异常的信息
        return AjaxResult.me().setSuccess(false).setMessage(e.getMessage());
    }

    @ExceptionHandler(Exception.class)
    public AjaxResult exceptionHandler(Exception e){
        //e.getMessage()是会捕获到抛出的自定义的异常的信息
        return AjaxResult.me().setSuccess(false).setMessage("系统异常，请联系管理员！");
    }

}
